﻿using System;

namespace SharpSqlAnalyzer.nodes
{
	// Token: 0x020002D3 RID: 723
	public class TExecParameter : TParseTreeNode
	{
		// Token: 0x17000524 RID: 1316
		// (get) Token: 0x0600184D RID: 6221 RVA: 0x0032928D File Offset: 0x0032748D
		// (set) Token: 0x0600184E RID: 6222 RVA: 0x00329295 File Offset: 0x00327495
		public virtual int ParameterMode
		{
			get
			{
				return this.parameterMode;
			}
			set
			{
				this.parameterMode = value;
			}
		}

		// Token: 0x17000525 RID: 1317
		// (get) Token: 0x0600184F RID: 6223 RVA: 0x0032929E File Offset: 0x0032749E
		// (set) Token: 0x06001850 RID: 6224 RVA: 0x003292A6 File Offset: 0x003274A6
		public virtual TObjectName ParameterName
		{
			get
			{
				return this.parameterName;
			}
			set
			{
				this.parameterName = value;
			}
		}

		// Token: 0x17000526 RID: 1318
		// (get) Token: 0x06001851 RID: 6225 RVA: 0x003292AF File Offset: 0x003274AF
		// (set) Token: 0x06001852 RID: 6226 RVA: 0x003292B7 File Offset: 0x003274B7
		public virtual TExpression ParameterValue
		{
			get
			{
				return this.parameterValue;
			}
			set
			{
				this.parameterValue = value;
			}
		}

		// Token: 0x06001853 RID: 6227 RVA: 0x003292C0 File Offset: 0x003274C0
		public override void init(object arg1)
		{
			this.parameterValue = (TExpression)arg1;
		}

		// Token: 0x06001854 RID: 6228 RVA: 0x003292CE File Offset: 0x003274CE
		public override void init(object arg1, object arg2)
		{
			this.init(arg1);
			if (arg2 != null)
			{
				this.parameterName = (TObjectName)arg2;
			}
		}

		// Token: 0x06001855 RID: 6229 RVA: 0x003292E8 File Offset: 0x003274E8
		public override void init(object arg1, object arg2, object arg3)
		{
			this.init(arg1, arg2);
			if (arg3 != null)
			{
				TSourceToken tsourceToken = (TSourceToken)arg3;
				if (tsourceToken.ToString().Equals("out", StringComparison.CurrentCultureIgnoreCase))
				{
					this.parameterMode = 2;
					return;
				}
				if (tsourceToken.ToString().Equals("output", StringComparison.CurrentCultureIgnoreCase))
				{
					this.parameterMode = 4;
				}
			}
		}

		// Token: 0x06001856 RID: 6230 RVA: 0x0032933C File Offset: 0x0032753C
		public override void doParse(TCustomSqlStatement psql, ESqlClause plocation)
		{
			this.parameterValue.doParse(psql, plocation);
		}

		// Token: 0x06001857 RID: 6231 RVA: 0x0032934B File Offset: 0x0032754B
		public override void accept(TParseTreeVisitor v)
		{
			v.preVisit(this);
			v.postVisit(this);
		}

		// Token: 0x06001858 RID: 6232 RVA: 0x0032935B File Offset: 0x0032755B
		public override void acceptChildren(TParseTreeVisitor v)
		{
			v.preVisit(this);
			v.postVisit(this);
		}

		// Token: 0x04001865 RID: 6245
		private TObjectName parameterName;

		// Token: 0x04001866 RID: 6246
		private TExpression parameterValue;

		// Token: 0x04001867 RID: 6247
		private int parameterMode;
	}
}
